package skyhyun;

public class J16_OOP2 {

	// 메서드(method)
	// 	클래스의 객체가 할 수 있는 행위를 정의
	// 	메서드에는 선언부와 몸체가 있음
	
	// 접근제한자 반환유형 메서드이름 (메개변수 목록) {
	// 	메서드 몸체
	// }
	// 메서드 선언부는 반환유형, 메서드이름, 인수목록임
	// 메서드 선언부를 메서드 서명이라고도 함
	
	// 특별한 메서드인 main 은 프로그램의 진입점을 제공
	// 일반적으로 프로그램은 수 많은 클래스로 구성됨
	// 그 중 주가 되는 메서드가 하나 있어야 하는데 그것이 바로 main 메서드임
	
	public static void main(String[] args) {
		Students taehee = new Students();
		taehee.kor = 99;
		taehee.eng = 98;
		taehee.mat = 99;
		
		taehee.showSungJuk();
		
	}
	
}

// 학생 클래스
class Students {
	int stdno = 0;
	int kor = 0;
	int eng = 0;
	int mat = 0;
	
	// 총점 구하기
	int computeTotal() {
		return  kor + eng + mat;
	}
	
	// 평균 구하기
	float computeAvg() {
		return (float)this.computeTotal() / 3;
	}
	
	// 학점 구하기
	String computeGrd() {
		
		switch( (int)this.computeAvg() / 10 ) {
		case 10 : case 9 :
			return "수"; 
		case 8 :
			return "우"; 
		case 7 :
			return "미"; 
		case 6 :
			return "양"; 
		default : 
			return "가";
		}
	}
	
	void showSungJuk() {
		System.out.println(this.computeTotal());
		System.out.println(this.computeAvg());
		System.out.println(this.computeGrd());
	}
	
}






